home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / TCP_IP / TNOS230S / TNOSMAP.C < prev    next >
C/C++ Source or Header  |  1997-09-14  |  4KB  |  212 lines

  1. /* *SIMPLE* program to decode the TNOS Features Flags from the
  2.    Features Map produced by 'tnos -m'
  3.  */
  4.  
  5.  
  6. #include <stdio.h>
  7. #include "map.h"
  8.  
  9.  
  10. #define CHECKFOR(y)    if (string[y##_OFF] & y##_VAL)    printf (format, #y)
  11.  
  12. #define PLAIN    0
  13. #define HEADER    1
  14. #define CONFIG    2
  15.  
  16. unsigned char string[MAPLENGTH + 1];
  17.  
  18. char const *format = "%s\n";
  19. char const *format2 = "%s\t%d\n";
  20.  
  21. void
  22. main (int argc, char *argv[])
  23. {
  24. int index = 1;
  25. char *tmp;
  26. unsigned char *cp;
  27. char buf[3];
  28. int ch;
  29. int mode = PLAIN;
  30.  
  31.     if (argc > 1 && !strcmp (argv[1], "-c"))    {
  32.         format = "set %s\t1\n";
  33.         format2 = "set %s\t%d\n";
  34.         argc--;
  35.         ++argv;
  36.         mode = CONFIG;
  37.     } else if (argc > 1 && !strcmp (argv[1], "-h"))    {
  38.         format = "#define %s\t1\n";
  39.         format2 = "#define %s\t%d\n";
  40.         argc--;
  41.         ++argv;
  42.         mode = HEADER;
  43.     }
  44.     if (argc == 4 && !strcmp (argv[1], "Features") && !strcmp (argv[2], "map:"))
  45.         index = 3;
  46.     tmp = argv[index];
  47.     cp = string;
  48.     while (*tmp)    {
  49.         buf[0] = *tmp++;
  50.         buf[1] = *tmp++;
  51.         buf[2] = 0;
  52.         sscanf (buf, "%x", &ch);
  53.         *cp++ = ch;
  54.     }
  55.  
  56.     CHECKFOR(ALERTMONITOR);
  57.     CHECKFOR(ALLCMD);
  58.     CHECKFOR(ALLSERV);
  59.     CHECKFOR(ALLSESSIONS);
  60.     CHECKFOR(ALTERBID);
  61.     CHECKFOR(ARCNET);
  62.     CHECKFOR(ASKHOME);
  63.     CHECKFOR(ASY);
  64.     CHECKFOR(ATCMD);
  65.     CHECKFOR(AUTOROUTE);
  66.     CHECKFOR(AXBCSTR);
  67.     CHECKFOR(AXIP);
  68.     CHECKFOR(AXUI);
  69.     CHECKFOR(BBSEXPORT);
  70.     CHECKFOR(BBSIMPORT);
  71.     CHECKFOR(BOOTPCLIENT);
  72.     CHECKFOR(BOOTPSERVER);
  73.     CHECKFOR(BROWSER);
  74.     CHECKFOR(CALLBOOK);
  75.     CHECKFOR(CALLCLI);
  76.     CHECKFOR(CALLSERVER);
  77.     CHECKFOR(CATALOG);
  78.     CHECKFOR(CONVERS);
  79.     CHECKFOR(CRONTAB);
  80.     CHECKFOR(DELEGATE);
  81.     CHECKFOR(DIALER);
  82.     CHECKFOR(DOS_GETFILEATTR);
  83.     CHECKFOR(DRSI);
  84.     CHECKFOR(DSERVER);
  85.     CHECKFOR(EAGLE);
  86.     CHECKFOR(EDITHEADERS);
  87.     CHECKFOR(ENCAP);
  88.     CHECKFOR(ESCAPE);
  89.     CHECKFOR(EXPIRY);
  90.     CHECKFOR(FBBCMP);
  91.     CHECKFOR(FBBFWD);
  92.     CHECKFOR(FIFOSERVER);
  93.     CHECKFOR(FILECMDS);
  94.     CHECKFOR(FOQ_CMDS);
  95.     CHECKFOR(FORTH);
  96.     CHECKFOR(FTPTDISC);
  97.     CHECKFOR(GATECMDS);
  98.     CHECKFOR(GPS);
  99.     CHECKFOR(HAPN);
  100.     CHECKFOR(HOLDMODS);
  101.     CHECKFOR(HOLDMONITOR);
  102.     CHECKFOR(HOPCHECK);
  103.     CHECKFOR(HOPPER);
  104.     CHECKFOR(HS);
  105.     CHECKFOR(HTTPPBBS);
  106.     CHECKFOR(HTTP);
  107.     CHECKFOR(IPACCESS);
  108.     CHECKFOR(ISUNIX);
  109.     CHECKFOR(KISS);
  110.     CHECKFOR(LOCK);
  111.     CHECKFOR(LOG_GMT_TZ);
  112.     CHECKFOR(LOOKSESSION);
  113.     CHECKFOR(LZW);
  114.     CHECKFOR(MAILBOX);
  115.     CHECKFOR(MAILCMDS);
  116.     CHECKFOR(MAILFILTER);
  117.     CHECKFOR(MAILFOR);
  118.     CHECKFOR(MBFWD);
  119.     CHECKFOR(MBXTDISC);
  120.     CHECKFOR(MESSAGESERVER);
  121.     CHECKFOR(MONITOR);
  122.     CHECKFOR(NETROM);
  123.     CHECKFOR(NNTPFILTER);
  124.     CHECKFOR(NNTPS);
  125.     CHECKFOR(NNTP);
  126.     CHECKFOR(NODECALL);
  127.     CHECKFOR(NR4TDISC);
  128.     CHECKFOR(NRS);
  129.     CHECKFOR(PACKET);
  130.     CHECKFOR(PC100);
  131.     CHECKFOR(PC_EC);
  132.     CHECKFOR(PI);
  133.     CHECKFOR(PING_SECURE);
  134.     CHECKFOR(PIPECMD);
  135.     CHECKFOR(POLLEDKISS);
  136.     CHECKFOR(POOLED);
  137.     CHECKFOR(POP2CLIENT);
  138.     CHECKFOR(POP2SERVER);
  139.     CHECKFOR(POP3CLIENT);
  140.     CHECKFOR(POP3SERVER);
  141.     CHECKFOR(POP);
  142.     CHECKFOR(PPP);
  143.     CHECKFOR(QRZCALLB);
  144.     CHECKFOR(RARP);
  145.     CHECKFOR(RDATE);
  146.     CHECKFOR(REJECT);
  147.     CHECKFOR(REQSVR);
  148.     CHECKFOR(RIP);
  149.     CHECKFOR(RLINE);
  150.     CHECKFOR(RLOGINCLI);
  151.     CHECKFOR(RLOGINSERV);
  152.     CHECKFOR(RMAIL);
  153.     CHECKFOR(ROUTESERVER);
  154.     CHECKFOR(RSPF);
  155.     CHECKFOR(RXECHO);
  156.     CHECKFOR(SAMCALLB);
  157.     CHECKFOR(SCC);
  158.     CHECKFOR(SCREENSAVER);
  159.     CHECKFOR(SCRIPTING);
  160.     CHECKFOR(SERVERS);
  161.     CHECKFOR(SETPSINFO);
  162.     CHECKFOR(SHELL);
  163.     CHECKFOR(SLFP);
  164.     CHECKFOR(SLIP);
  165.     CHECKFOR(SM_CURSES);
  166.     CHECKFOR(SM_DUMB);
  167.     CHECKFOR(SM_RAW);
  168.     CHECKFOR(SOUNDS);
  169.     CHECKFOR(SQL);
  170.     CHECKFOR(STATS_AREA);
  171.     CHECKFOR(STATS_FWD);
  172.     CHECKFOR(STATS_HTTP);
  173.     CHECKFOR(STATS_MSG);
  174.     CHECKFOR(STATS);
  175.     CHECKFOR(STATS_TFC);
  176.     CHECKFOR(STATS_USE);
  177.     CHECKFOR(STRICT_CALL);
  178.     CHECKFOR(STRICT_HTTPCALL);
  179.     CHECKFOR(TCPACCESS);
  180.     CHECKFOR(TCPGATE);
  181.     CHECKFOR(TERMSERVER);
  182.     CHECKFOR(TIPMAIL);
  183.     CHECKFOR(TRACESERVER);
  184.     CHECKFOR(TRACE);
  185.     CHECKFOR(TRANSLATE);
  186.     CHECKFOR(TSCRIPTSERVER);
  187.     CHECKFOR(TTYCALL);
  188.     CHECKFOR(TUTOR);
  189.     CHECKFOR(UDPACCESS);
  190.     CHECKFOR(UNIX_SOCKETS);
  191.     CHECKFOR(USEPOP3);
  192.     CHECKFOR(USERLOG);
  193.     CHECKFOR(USE_TZOFFSET);
  194.     CHECKFOR(VERSION_ON_FILE);
  195.     CHECKFOR(VJCOMPRESS);
  196.     CHECKFOR(WPAGES);
  197.     CHECKFOR(XFWD);
  198.     CHECKFOR(XMODEM);
  199.     CHECKFOR(XSERVER);
  200.  
  201.     CHECKFOR(UNUSED1);
  202.  
  203.     if (mode != PLAIN)    {
  204.         printf (format2, "MTHRESH", 16384);
  205.         printf (format2, "NROWS", 25);
  206.         printf (format2, "NIBUFS", 10);
  207.         printf (format2, "IBUFSIZE", 1024);
  208.         printf (format2, "NSESSIONS", 20);
  209.         printf (format2, "DEFNSOCK", 40);
  210.     }
  211. }
  212.